<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 什么是promise  es6 解决异步任务 代码编写顺序和执行顺序不一致的统一方案
        // callback 回调有缺点
        const weather = new Promise((resolve,reject) => {
            setTimeout(() => {
                resolve({temp:26, conditions:'Sunny'})
            }, 2000)
        });
        const tweets = new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve(['I like beer','BBQ is good too!'])
            }, 4000)
        })
        // 通过.then()解决异步任务
        // weather
        //     .then((data) => {
        //         // 天气
        //         console.log(data)
        //         // 又返回了一个promise
        //         return tweets
        //     })
        //     .then((data) => {
        //         // tweets
        //         console.log(data)
        //     })
        // tweets
        //     .then((data) => {
        //         console.log(data);
        //     })
        Promise
            .all([weather, tweets]) // 静态的 static  所以都执行完了 再then
            .then(response => {
                // 不管谁的时间如何，都会维持all里的顺序
                // console.log(response)
                const [weatherInfo, tweetsInfo] = response;

                console.log(weatherInfo, tweetsInfo)
            })
    </script>
</body>
</html>